<?php
defined('PATH') or exit('Access Denied');
if (!defined('TK_PATH')) define('TK_PATH', dirname(__FILE__)."/");
if (!defined('TK_HOST')) define("TK_HOST", $_SERVER['HTTP_HOST']);
if (!defined('_PATH_')) define("_PATH_", dirname($_SERVER['SCRIPT_FILENAME']));
if (!defined('TK_URL')) define("TK_URL", "http://".TK_HOST.PATH."/");
if (!defined("_LIB_"))define("_LIB_", _PATH_."/Include/libs/");
if(!defined("DATA"))define("DATA", _PATH_."/Data/");
if(!defined("_TMP_"))define("_TMP_", DATA."Temp/");

ini_set('display_errors',false);
//error_reporting(E_ERROR & E_WARNING & E_NOTICE);

try{
	date_default_timezone_set("Asia/Shanghai");
}catch (Exception $e){}

/**********载入系统配置文件****************/
$GLOBALS['TEMPCONF']=include DATA.'TemplateConf.php';
$GLOBALS['SYSCONF']=include(_PATH_."/Data/sys.inc.php");
$GLOBALS['CONF']=include(_PATH_."/Data/common.inc.php");

/***********载入错误处理类***********/
if (file_exists(TK_PATH."/appException.php")){
	require_once TK_PATH."/appException.php";
}else{
	exit("程序错误!");
}

/**********载入公共函数*************/
if (file_exists(TK_PATH."functions.php")){
	require_once(TK_PATH."functions.php");
}else new appException("公共函数库载入失败");
if (C('TIME_ZONE')!=date_default_timezone_get()){
	date_default_timezone_set(C('TIME_ZONE'));
}
//@date_timezone_set(C('TIME_ZONE'));
/*************SQL 防注入***************/
//SqlIn(C('SQLIN'));
/**********载入模板引擎*************/
$SMARTY=C('SMARTY');
if (file_exists(_LIB_.$SMARTY['Smarty_dir']."/Smarty.class.php")){
	require_once(_LIB_.$SMARTY['Smarty_dir']."/Smarty.class.php");
}else  new appException("Smarty模板引擎路径不存在~"._LIB_.$SMARTY['Smarty_dir']."/Smarty.class.php");
/**********载入控制器***************/
if (file_exists(TK_PATH."Controller.php")){
	require_once TK_PATH."Controller.php";
	Controller::$_C=C();
}else{
	new appException("控制器载入失败~");
}


$_SID=C('SID');
$SID=$_REQUEST[$_SID];
$ACT=C('ACT');
$ACTVAL=empty($_REQUEST[$ACT])?null:$_REQUEST[$ACT];
$METHOD=C('METHOD');
$METVAL=empty($_REQUEST[$METHOD])?null:$_REQUEST[$METHOD];
$SMARTY=C('SMARTY');
if (getTemplate()){
	$TEMPLATE=getTemplate();
}else{
	$TEMPLATE=$SMARTY['Template'];
}
$Mitype=array(
	'default'=>'text/html',
	'3g'=>'text/html',
	'wap'=>'text/vnd.wap.wml'
);
/*************语言包****************/
$lang=array();
$langpath=C('LANG');
$langpath=_PATH_."/".$langpath['path'];
$langpath=$langpath."/";
if (file_exists($langpath.getLang()."/common.lang.php")){
	$lang_com=require($langpath.getLang()."/common.lang.php");
}else{
	$lang_com=array();
	new appException("找不到公共语言包！路径:".$langpath.getLang()."/common.lang.php");
}
if (file_exists($langpath.getLang()."/".getAction().".lang.php")){
	$lang=require($langpath.getLang()."/".getAction().".lang.php");
}else if (file_exists($langpath.getLang()."/".ucfirst(getAction()).".lang.php")){
	$lang=require($langpath.getLang()."/".ucfirst(getAction()).".lang.php");
}
$lang=array_merge($lang_com,$lang);

/***********自动加载************/
function tk_autoload($classname){
	global $sysconf;
	if (file_exists(_PATH_."/".C("ACTION")."/$classname.php")){
		require(_PATH_."/".C('ACTION')."/$classname.php");
	}elseif (file_exists(_PATH_."/".C("MODEL")."/$classname.php")){
		require (_PATH_."/".C('MODEL')."/$classname.php");
	}elseif(file_exists(TK_PATH."$classname.php")){
		require (TK_PATH."$classname.php");
	}elseif (file_exists(_PATH_."/".C('PUBLIC_CLASS')."/$classname.php")){
		require (_PATH_."/".C('PUBLIC_CLASS')."/$classname.php");
	}else{
		 new appException("找不到 {$classname} 这个类");
	}
}

if(!function_exists("__autoload")){
	if (function_exists("spl_autoload_register")){
		spl_autoload_register('tk_autoload');
	}else{
		function __autoload($classname){
			tk_autoload($classname);
		}
	}
}
/***********Session************/
if ($SID==''){
	$SID=Common::getCode();
	header("location:".setUrl($_SID, $SID));
}
if (C('SESSION')){
//初始设置
	ini_set("session.gc_maxlifetime", "144000");
	session_save_path(_TMP_.'Session/');
	session_name($_SID);
	if (!empty($SID)){
		session_id($SID);
	}
	session_start();
	$SID=session_id();
	$_SESSION['ip']=getIp();
}
if (empty($_GET[$_SID])){
	header("location:".setUrl($_SID, $SID));
}